struct screen {
   TTF_Font *fnt;
   SDL_Surface *display; //Основная поверхность программы (рабочая область)
   int width;	//разрешенние рабойей области по ширене
   int heigth; //разрешенние рабойей области по высоте

   /*--------карта--------*/
   int map_width;	//количество тайлов в видимой карте по ширене высчитывается по формуле map_width=width/64 (округлить до большего)
   int map_heigth; //количество тайлов в видимой карте по высоте высчитывается по формуле map_heigth=heigth/32*2 (округлить до большего)

   int map_width_p; // Размер карты в пикселях по ширене map_width_p=(NX*64)+32 где NX это размер масива карты по х
   int map_heigth_p; // Размер карты в пискселях по высоте map_height_p=((NY*32)/2)+16 где NY это размер масива карты по y

   int center_width; // Переменные для края экрана center_width=width/2
   int center_heigth; // Переменные для края экрана center_heigth=heigth/2

   int d_map_center_width;  //центр отрезка карты \\ не может быть меньше чем width/2
   int d_map_center_heigth; // размещенного на рабочую поверхность display \\ не может быть меньше чем heigth/2

   int x_in_map;  //центр отрезка карты \\ не может быть меньше чем width/2
   int y_in_map; // размещенного на рабочую поверхность display \\ не может быть меньше чем heigth/2

   int w0x, w0y; // центр карты в пикселях центр переечения x` и y`
   int t0x, t0y; // центральный элемент масива в плоскости x` и y`

   bool full;  //Для обозначения полноэкранного режима (либо да либо нет)
   Uint32 then, now, frames; // Для контроля FPS
   int fps;                  // Для контроля FPS

   SDL_Surface  *tmp[7000]; // Масив в которм хранятся спрайты
};

struct rpg_player {
int x; float y; //позиция в мировых координатах
int new_x; int new_y; // новая позиция в мировых координатах

float health; //Здоровье
float endurance; //Выносливость
float speed; //Скорость
float attention; //Внимательность
float accuracy; //Аккуратность
float capacity; //Грузоподьемность
float sight; //Зрение

float ves_mehka; //сколько весит мешок

bool set_unit; //выбран ли персонаж

float nap_dvijeniya;
float slaid_dvijeniya;

//Функция перемещения персонажа
void move(int xrel, int yrel){

 if (x == xrel and y == yrel){

        nap_dvijeniya=nap_dvijeniya+0.002;// для того чтобы персонаж не простаивал когда никуда не идет, юудет крутится
        slaid_dvijeniya=0;
        if (nap_dvijeniya>7){nap_dvijeniya=0;}
    }
 if (x > xrel){

        --x;
        nap_dvijeniya=6;
        slaid_dvijeniya=slaid_dvijeniya+0.1;
        if (slaid_dvijeniya>4){slaid_dvijeniya=0;}
    }
 if (x < xrel){

        ++x;
        nap_dvijeniya=2;
        slaid_dvijeniya=slaid_dvijeniya+0.1;
        if (slaid_dvijeniya>4){slaid_dvijeniya=0;}
    }

 if (y > yrel){

        y=y-0.5;
        if (nap_dvijeniya == 2 or nap_dvijeniya == 6)
        {
           if (nap_dvijeniya == 2){nap_dvijeniya=1;}
           if (nap_dvijeniya == 6){nap_dvijeniya=7;}

        }else{
        nap_dvijeniya=0;
        }
        slaid_dvijeniya=slaid_dvijeniya+0.1;
        if (slaid_dvijeniya>4){slaid_dvijeniya=0;}

    };
 if (y < yrel){

        y=y+0.5;

        if (nap_dvijeniya == 2 or nap_dvijeniya == 6)
        {
           if (nap_dvijeniya == 2){nap_dvijeniya=3;}
           if (nap_dvijeniya == 6){nap_dvijeniya=5;}

        }else{
        nap_dvijeniya=4;
        }
        slaid_dvijeniya=slaid_dvijeniya+0.1;
        if (slaid_dvijeniya>4){slaid_dvijeniya=0;}

    };

 }

};


struct game_all {
   bool GAME; /* Пока труе процес игры идет */
   /*Переменные для мыши*/
   int mouse_x, mouse_y; // для отслеживания положения курсора на экране
   int pres_mouse_button, pres_button_y, pres_button_x, unpres_mouse_button; // контроль над  отжатыми клавишами. где, нажата, отжата
   int kursor_x, kursor_y; //Для отслеживания положения курсора на  карте

   int map_kursor_middl[8][2];
   int map_kursor_distant[16][2];

   int game_menu_f;// для переключений между меню
   int play_game_f;// игрой
   int map_editor_f;// и редактором карт

   int tail_redaktora; // какой тайл выбран в редакторе

   bool rpg_tip; //играем в РПГ
   bool str_tip; //Играем в стратегию
   bool ship_tip;// играем в корабль

   struct screen* screen;
   struct rpg_player* rpg_player;

   SDL_Event event;

};



void screen_init(struct screen* screen);
void clear(SDL_Surface *display);
void loadsprite(int num, char * name);
void sprite(int num, float x, float y, struct screen* screen);
//void print_ttf(SDL_Surface *sDest, char* message, char* font, int size, SDL_Color color, SDL_Rect dest);
//void font_print (int r, int g, int b, int x, int y , char* txt, char* font, int size, struct screen* screen);
void fx(struct game_all* game_all);
void draw_rpg(struct game_all* game_all);
